1. Field of the Invention
The present invention relates to the field of computer security, more specifically to new ways of computing basic arithmetic and Boolean operations to obfuscate program code.
2. Introduction
Protection of digital content is important for many enterprises. Digital Rights Management (DRM) technologies attempt to control usage of digital content by preventing or limiting access to the digital content and by hindering attempts to copy or convert data to another format. Content providers often protect content through cryptography, but also use other methods.
Cryptography is one traditional method of protecting data. Cryptography protects communications between two mutually trusting parties from thievery or hackers by attack on the data in transit. Encryption is the process of obfuscating information in a systematic way such that only the intended recipient holding the secret key can read the data. Decryption is the process of removing the protection and retrieving the original data using a secret key. Sometimes, cryptography is not feasible or desirable.
Code obfuscation is the process of writing software code in such a way that it is difficult for others to follow and/or reverse engineer. Obfuscation is an attempt to slow down an attacker by preventing unauthorized access to program source code. Obfuscating code makes it time-consuming but not impossible to reverse engineer a program and does not provide a level of security similar to modern encryption schemes. Code obfuscation is applicable to DRM schemes where the adversary has access to program code containing secret information. Accordingly, what is needed in the art is an improved way to obfuscate code for the purpose of preventing unauthorized access.